package org.lemon.cla.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.lemon.cla.enums.UserRoleEnum; // Assuming you have this enum for user roles

import java.time.LocalDateTime;

@Data
@Schema(description = "社团活动视图对象 (包含组织者信息)")
public class ClubActivityVo {

    @Schema(description = "活动ID", example = "1")
    private Long activityId;

    @Schema(description = "所属社团ID", example = "1")
    private Long clubId;

    @Schema(description = "活动名称", example = "编程马拉松")
    private String activityName;

    @Schema(description = "封面URL", example = "http://example.com/activity_cover.jpg")
    private String coverUrl;

    @Schema(description = "活动内容", example = "为期两天的编程比赛，挑战你的极限！")
    private String content;

    @Schema(description = "地点", example = "教学楼A栋101室")
    private String location;

    @Schema(description = "报名开始时间", example = "2024-07-01T09:00:00")
    private LocalDateTime signupStart;

    @Schema(description = "报名结束时间", example = "2024-07-15T18:00:00")
    private LocalDateTime signupEnd;

    @Schema(description = "活动开始时间", example = "2024-07-20T09:00:00")
    private LocalDateTime startTime;

    @Schema(description = "活动结束时间", example = "2024-07-21T18:00:00")
    private LocalDateTime endTime;

    @Schema(description = "组织者ID", example = "102")
    private Long organizerId;

    @Schema(description = "参与人数", example = "50")
    private Integer participantCount;

    // --- Organizer User Information ---
    @Schema(description = "组织者用户名", example = "admin_user")
    private String organizerUsername;

    @Schema(description = "组织者头像URL", example = "http://example.com/admin_avatar.png")
    private String organizerAvatarUrl;

    @Schema(description = "组织者真名", example = "管理员小李")
    private String organizerRealName;

    @Schema(description = "组织者手机号", example = "13912345678")
    private String organizerPhone;

    @Schema(description = "组织者邮箱", example = "admin@example.com")
    private String organizerEmail;

    @Schema(description = "组织者角色", example = "管理员")
    private UserRoleEnum organizerRole;

    @Schema(description = "组织者是否已逻辑删除 (true if organizer is logically deleted)", example = "false")
    private Boolean organizerIsDeleted; // New field to indicate if organizer is logically deleted
}